Copyright: Copyright 1995 QPC Software. All rights reserved.


Table of Contents
QVT/Net Servers

FTP Server

RCP Server

SMTP Server

POP3 Server


FTP Server
QVT/Net FTP Server

QVT/Net's FTP server allows you to logon to your PC using a remote FTP client, and perform a variety of file-oriented operations, as specified by the FTP protocol (RFC959). Most notably, you can transfer files back and forth.

Setting up the FTP Server

The key issue in setting up the FTP server is security. You must decide:

Who will have access to your server

What level of access your users will have

Whether 'anonymous' logins will be permitted

These and other issues are handled in the setup process. The main Preferences dialog has three pages. The first looks like this:

This page has two input fields. They are, respectively the initial login directory for 'documented' users, and the initial login directory for 'anonymous' users. By 'documented' users, we mean users whose usernames and passwords are stored in a security file on your machine. If you omit the first of these login directories, your users will be initially attached to the server's working directory. However, if you omit the second, the 'anonymous' user's initial directory, you will disable anonymous logins! So, make sure that you don't inadvertently leave this blank if in fact you do want to allow anonymous logins.

The second page,

... contains a pair of checkboxes, and in input field. The first checkbox is used to indicate that you want all FTP server runtime information, such as user logins and file transfers, logged to disk. The second indicates whether or not you want the FTP server to 'go live' as soon as the application is launched. The default for both of these options is 'No'.

The input field can be used to specify which IP port the FTP server will listen on. The Internet standard is "21", but you can use a different port if you like.

The final page,

also deals with security information. The pair of radio buttons, headed 'Default Access', specifies that you want to either allow or deny access to directories which are not mentioned in your ACL (access-control list) file. To deny access means that your users will have access only to the directories to which they are explicitly given access. The ACL process will be described in detail below.

The Default Access setting will also come into play if you choose to not create an ACL database at all. You must be careful, then, if you choose the 'Deny' setting for default access. If there is no ACL file, and default access is 'deny', then no one will be able to log on to your server!

The trio of radio buttons labelled 'Anonymous Access' allow you to specify the type of access that 'anonymous' users will have. There are three levels of access:

Full Access (Read/Write)

Read-only Access

No Access

The final pair of radiobuttons is used to specify whether or not connections will be allowed outside the local subnet, or not. If you are worried about intruders from outside your Intranet, you should select the option "Local Subnet Only".


User Authorization

We have already mentioned that there is a main security file that is used for user authorization. This file is named 'ftppass', and it is stored in the 'Servers' directory. The FTP server contains a dialog that is used to maintain the user list:

The left-hand part of this dialog displays your list of authorized users. The right-hand side contains an input field area that is used to edit the user entries. Each user will be described by three attributes:

A user name

A password

An initial login directory

The first two of these fields are mandatory; all authorized users must have both a username and a password. The third item, the initial login directory, is optional. The main 'Preferences' dialog contains an item that allows you to specify the default login directory for authorized users; you can override the default on a per-user basis by entering a directory path as part of the user documentation.


Access Control Lists
Access-Control Lists

QVT/Net uses access-control lists, or ACL's, as a simple yet powerful mechanism for implementing a wide variety of security schemes. An ACL consists of two elements:

A directory spec (possibly wildcarded)

A list of usernames and privilege levels

The two data elements are separated by a blank space.

Here is a very simple ACL:

c:\arc smithj

In this ACL, 'c:\arc' is a directory spec, and 'smithj' is the name of a user who is authorized to access the directory. In this form of the ACL:

Only the single directory 'c:\arc' is authorized

Only one user is authorized to access the directory

That user, 'smithj', has full read/write/delete privileges

Here is a simple variation:

c:\arc* smithj

Here, we have added a wildcard to the directory spec, to show that the list will apply to  the specified directory and all of its subdirectories (if any).

Now, we will restrict smithj's access privileges a little bit:

c:\arc* smithj:lr

The colon-delimited suffix 'lr' indicates that the listed user has only 'list' and 'read' privileges in the directory. Attempts to write, overwrite, or delete files will be rejected.

The access modes supported by this mechanism are:

l	List. The user can list the directory

r	Read. The user can read files

w	Write. The user can create and write files

o	Overwrite. The user can overwrite existing files

d	Delete. The user can delete files

Access-control lists can contain more than one username:

c:\arc smithj,jonesm

This ACL allows 'smithj' and 'jonesm' to access the specified directory, without restrictions. Each user may be given a separate set of privileges, using the 'lwrod' scheme described above.

In order to create or edit access-control lists, you should select the 'Setup - Access Control Lists' menu item, which will give you this dialog:

You can enter your ACL's as lines of text in the editor window.


Starting FTP Server
Starting the FTP Server

Be default, the FTP server will not actually begin listening for logins when the application window is displayed. To activate the server, you must select the 'Server - Start Server' menu item. This will cause a message to display in the window:

Note also that the title bar contains the word 'running', so that you can tell that the server is activated even if the application is in the minimized state.

To stop the server, simply select the 'Server - Stop Server' menu item.


FTP Commands
FTP Commands Supported by the FTP Server

QVT/Net's FTP server supports the following FTP commands:

USER

PASS

NLST

LIST

CWD

CDUP

STOR

RETR

DELE

MKD

RMD

PWD

PASV

SYST

RNFR/RNTO


RCP Server
QVT/Net RCP Server

QVT/Net's rcp server allows you to copy files between your PC and a remote host, using the BSD 'rcp' protocol. Since this is a server, not a client, all transactions are initiated from the other host, for example from a telnet session. Unlike FTP, which has both text and binary modes, all files copied using rcp are binary (exact) copies.

Setup

The rcp server setup is similar to, but simpler than, the process of setting up the FTP server. Here is the main setup dialog:

Here are explanations of each of the setup items.

Initial Login Directory

This is the directory to which incoming rcp users will be attached at the start of an rcp transaction.

Default Access Mode

QVT/Net uses access control lists to define security on directories. This setup item specifies whether access will be allowed or denied to directories which are not explicitly controlled by an ACL.

Log Server Activity

If you select this checkbox, all rcp transactions will be logged to a disk file. The name of the file will be 'rshd.log', and it will be located in the 'Servers' directory.

Start Server Immediately

If this checkbox is selected, the rcp server will be started as soon as the 'rshd' application is launched.

Allow Connections From

The rcp server can be configured to allow client connections from anywhere, or to restrict connections to clients located on the local subnet. If you are worried about intrusions from outside your Intranet, you should select "Local Subnet Only".

Access Control Lists

As mentioned previously, QVT/Net's ftp and rcp servers use the 'access control list' method for controlling access to filesystem objects (i.e., directories). In fact, they share the same ACL database, which is jointly maintained by both applications.

The structure of an ACL is simple: the first element in the list is the name of the directory that is controlled by the list; the remainder of the list consists of the usernames which are permitted to access the directory. Each username may be accompanied by a list of access rights; this feature can be be used to give read, but not write, access to a user.

This is a sketch of the ACL structure:

<directory>[*] <username>[:<rights>]

For more information on ACL's, see the main section on Access Control Lists.

rcp Server Startup

When the rcp server is first started, the display area will look like this:

At this point, though the 'rcpd' application is running, the rcp server itself is not yet started. To do so, go to the 'Server' menu and select the menuitem 'Start Server'. A new message will appear in the display area:

You can stop the server anytime by selecting the 'Server - Stop Server' menuitem.


SMTP Server
QVT/Net SMTP Server

The SMTP server may be used if you want to receive mail directly on your PC, rather than on a remote server (usually operated by your ISP) that you then access via a protocol such as POP3. While the use of SMTP does automate the process of getting your mail to you, it also requires that you have a server on your LAN that is permanently connected to the Internet (or Intranet). This is because the SMTP mail delivery process is mostly a synchronous process; the mail gateway that delivers your mail expects a server to be there when needed to receive incoming mail. Most gateways will retry only for a certain number of hours, after which they will "bounce" the message back to the originating client, with a notification status of "undeliverable". If you cannot provide this type of constant network connectivity, you probably should not be using the SMTP server.

The key to the successful operation of the SMTP server is the ability to associate incoming email messages with file directories on your PC. This is done by analyzing the recipient portion of the email address (the part before the '@'), and finding an appropriate destination for messages addressed to that recipient. The QVT/Net SMTP server uses a separate subdirectory for each recipient, and those subdirectories are matched by name to the recipient's name.

QVT/Net Data and Mail Directory Concepts

All QVT/Net data is placed into a single directory tree, which is specified at setup time. The default is "C:\Program Files\QPC\QVTNet", though a different location can be specified at startup time.. A subdirectory, "Mail", is created one level below the main data directory. In the default case, the mail 'root' directory will be:

C:\Program Files\QPC\QVTNet\Mail

User-specific subdirectories will reside below the "Mail" directory. If we have a user (i.e. recipient) named "smithj", an inbox for this user will be created in this subdirectory:

C:\Program Files\QPC\QVTNet\Mail\smithj\Incoming

Address/Directory Mapping

If a message arrives addressed to 'smithj@mysys.com', the SMTP server will extract the name 'smithj', and look for a mailbox mapped to that name.

Incoming message for:	smithj@mysys.com

Will be placed in:	C:\Program Files\QPC\QVTNet\Mail\smithj\Incoming

If the QVT/Net SMTP server cannot find a mailbox that maps to the recipient's name, the message will be rejected.


smtpd Setup
Setting Up the SMTP Server

The QVT/Net SMTP server is easy to set up. There are relatively few configurable items, and they are all described below.

Be aware, however, that there are three data items that the SMTP server uses that are not set up by the SMTP server itself. These items are:

The name of the root mail directory

The name of the SMTP mail gateway

The return email address

All three of these items are configured using the QVT/Mail client. So, before attempting to run the SMTP server, you should set up QVT/Mail first. In particular, make sure that you run the main setup process and specify a return address and an SMTP host.

The root mail directory will be specified when you first run the QVT/Mail client. Before the application window is displayed, you will be prompted to accept or change the default data directory. The outcome of this process will be the directory that is used by all of the QVT/Net modules.

The QVT/Net SMTP server itself has a fairly simple Setup dialog:

The items presented in this dialog are as follows:

Audible Notification

You can specify the name of a .WAV file that will be played whenever a new mail message is received.

Listen on IP Port

By default, the QVT/Net SMTP server will listen on the Internet standard port for SMTP, 25. You can use a different port if you like.

(QVT/Mail can be configured to send mail to a port other than 25).

Allow Connections From

You can configure the SMTP server to allow client connections from anywhere, or only from clients that are located on your local subnet. If you are worried about intrusions from outside your Intranet, select "Local Subnet Only".

Log SMTP Server Activity

If this box is checked, all of the messages that appear in the SMTP Server window will be stored in a disk file. The name of the file will always be 'smtpd.log'.

Start Server Immediately

If this box is checked, the SMTP server will be activated as soon as the application window is displayed, at program startup. If you do not select this option, you will have to start the server manually, from the 'Server' menu.

Enable Auto-Respond

The SMTP server has the ability to send a pre-programmed response to all received messages. This is useful if you are going to be away for a while, and unable to read your mail, or just as a way of notifying each person who sends you mail that their mail has been received.

If you enable auto-respond, you will have to use the second page of the Setup dialog to complete the configuration:

There are two items shown in this page:

Return Email Address

The return email address that should appear on your outgoing message.

Autoresponse Text

The actual text of the autoresponse message


Starting SMTP Server
Starting the SMTP Server

Be default, the SMTP server will not actually begin listening for new mail when the application window is displayed. To activate the server, you must select the 'Server - Start Server' menu item. This will cause a message to display in the window:

Note also that the title bar contains the word 'running', so that you can tell that the server is activated even if the application is in the minimized state.

To stop the server, simply select the 'Server - Stop Server' menu item.


Forwarding Mail

The QVT/Net SMTP server can be used to forward or copy mail to a recipient other than the one to whom the message was originally addressed. Here is the procedure for adding a forwarding entry to the registry. In this example, we are going to forward mail originally addressed to 'smithj@mysys.com' to 'jonese@oursys.com'.

1. Start REGEDIT

2. Find and select the key HKEY_CURRENT_USER\Software\QPC\QVTNet\4.1\Mail\Forward

3. Go to the 'Edit' menu, and select the option 'New - String Value'. The name of the new value will be the original email address of the recipient whose mail is to be forwarded. In our example, this will be 'smithj@mysys.com'.

4. Double click on the new value just created. This will bring up a new dialog box that you can use to enter the destination address. The email address should be preceded by the key 'fwd:' if you want to forward mail, and 'cc:' if you want to copy mail. The difference is that copied mail ('cc:') will be delivered to both recipients, whereas forwarded mail will be sent only to the final recipient. In this example, the result will be 'fwd:jonese@oursys.com'. Click on 'Ok' to save.

From now on, when the SMTP server receives mail addressed to 'smithj@mysys.com', it will be sent to 'jonese@oursys.com' instead. If you had wanted both recipients to receive the message, replace the 'fwd:' in step 4 with 'cc:'.


POP3 Server
QVT/Net POP3 Server

The QVT/Net SMTP server allows you to receive SMTP mail directly to your PC (or to a server on your LAN). Messages received in this way are usually accessed by the QVT/Mail client, directly through the file system. This method will work, however, only if QVT/Mail is running on a machine that can access the mailbox through the file system. This will always be true if the mailbox resides on PC's local drive. If the mailbox is located on a LAN file server, the client PC must also be connected to the LAN in order for the mailbox to be accessible via the file system (i.e., a drive mapping).

If your mailbox is located on a file server, and if your client PC isn't connected to the LAN, you will have to use another method to access your mail. For example, you may be out of town on a business trip. In such cases, you can access your mail using the QVT/Net POP3 server.

Normally, the QVT/Net POP3 server will be used in situations where your mailboxes are kept in a central location, on a file server, rather than on individual workstations. You will run both the SMTP server and the POP3 server on the file server. The SMTP server will receive mail messages, and deposit them in user mailboxes, and the POP3 server will be used to access those messages from the client workstation. You can use any standard POP3 client, such as QVT/Mail, to communicate with the QVT/Net POP3 server.

Setting up the POP3 Server

QVT/Net's POP3 server setup is quite simple, involving only a single dialog:

There are only three configurable items presented in this dialog.

Listen on IP Port

By default, the QVT/Net POP3 server will listen on the standard port for the POP3 protocol, port 110. You can, however, use a different port if you like. The QVT/Mail client can be configured to communicate over a non-standard port as well.

Start Server Automatically

This checkbox allows you to indicate that you want the QVT/Net POP3 server to begin listening for client connections immediately after it is launched. This is most useful in situations where you have placed the POP3 server into the "Startup" program group.

Accept Connections From

You can use this radiobutton pair to restrict POP3 client connections to only clients that are located on the local subnet. This is useful if your server is exposed to the Internet, and you don't want outside clients to have access to the server.

Creating POP3 Mailboxes

In QVT/Mail, all messages are received by the SMTP server and placed into a mailbox that is private to each recipient. The SMTP server is not, however, capable of creating these mailboxes. Instead, this is done by the QVT/Mail client, or by the QVT/Net POP3 server.

Here is the dialog that is used by the POP3 server to create user mailboxes:

To begin the process, click on the "New" button. After you do this, the "Username" and "Password" input fields, will be enabled, and the cursor will be placed in the "Username" field.

To create a mailbox, simply fill in the Username and Password, then click on "Save". The newly-created mailbox name will appear in the list on the left-hand side of the dialog.

Note: It is very important that you follow Internet standards when naming your mailbox. The mailbox name, or user name, must consist entirely of alphanumeric characters, with only "-" and "." allowed as separators. There must not be any blanks in the name!


Planning a Mail Installation
Planning your Mail Installation

QVT/Net Mail, of which the SMTP server is a part, has several modes of operation, and you must have some idea of which mode you will use before you configure it. There are two key questions that you will need to answer:

Is this a single-user or multi-user installation?

Is mail to be stored on the workstation, or on a file server?

These questions are inter-related. If an installation is multi-user, the mailboxes will almost certainly be stored on a file server. If an installation is single-user, then the mailbox for that user will probably be located on the user's workstation (but not necessarily!).

Since mail messages are stored in a subdirectory tree below the main QVT/Net "data" directory, if you are planning a multi-user installation, you must decide on a central location for your data before you install QVT/Net on your workstations. This location will probably be on a file server that is reachable from all of the user workstations.

For example, let's say that you have a file server that you use to store all user data. This server is mapped as the E: drive on all your workstations. In this case, a reasonable choice for the QVT/Net "data" directory might be "E:\QvtData". Your user mailboxes will therefore be mapped to subdirectories that will look like this:

E:\QvtData\Mail\<username>\Incoming

In order to get the proper mapping, you will need to specify "E:\QvtData" as the QVT/Net data directory when you install QVT/Net on your workstations.


Creating Mailboxes
Creating User Mailboxes

There are three ways to create a mailbox for user "smithj":

Launch the QVT/Net Mail client

QVT/Mail will automatically create a mailbox for each user who runs it. When "smithj" first runs QVT/Mail, an inbox, along with several other default mailboxes, will be created within the Mail directory tree.

Use the QVT/Net SMTP server or POP3 server

Both the QVT/Net SMTP and POP3 servers provide a setup dialog that allows you to easily create user mailboxes. This dialog is accessed by selecting the "Setup - Mailboxes" menu item.

This dialog allows you to:

Create a new inbox for a user

Modify the password of an existing inbox

To create a new mailbox for a user, follow this procedure:

1. Click on the 'New' button. The fields labelled "Username" and "Password" will become enabled, and the cursor will be positioned in the "Username" field.

2. Type in the name of the user who will receive mail in the new mailbox. This name must conform to Internet specifications for mail recipients. The name must not contain blanks, and it should consist mostly of letters and numbers. The punctuation characters '-' and '.' are also allowed. Mail recipient names are not case-sensitive. An example of an acceptable name would be "John.Smith", whereas "John Smith" is not (no blanks are allowed).

3. Move the cursor to the "Password" field, and type in the password that will be used to access this mailbox over the network (using the POP3 protocol). Again, we recommend that passwords not contain blanks, and that they consist mostly of alphanumeric characters.

4. To finalize the operation, click on "Save". The new mailbox name will appear in the list on the left-hand side of the dialog.

To change the password for an existing mailbox, you can double-click on the mailbox name, and the entry for that mailbox will be displayed in the editing area. Type in the new password, then click on "Save".

Create the directories manually

...using Windows Explorer. This "back door" approach is perfectly acceptable, as long as the mail recipient will be accessing the mailbox only within the context of the local (or network) file system. Mailboxes created via Explorer will not have password entries, and will therefore not be accessible through the QVT/Net POP3 server.